Pass domain to update_dom_time instead of shared_info.
}
/* Set up shared-info area. */
- update_dom_time(p->shared_info);
+ update_dom_time(p);
p->shared_info->domain_time = 0;
/* Mask all upcalls... */
for ( i = 0; i < MAX_VIRT_CPUS; i++ )
}
-void update_dom_time(shared_info_t *si)
+void update_dom_time(struct domain *d)
{
+ shared_info_t *si = d->shared_info;
unsigned long flags;
read_lock_irqsave(&time_lock, flags);
write_unlock_irq(&time_lock);
- update_dom_time(current->domain->shared_info);
+ update_dom_time(current->domain);
}
goto out;
/* Set up the shared info structure. */
- update_dom_time(p->shared_info);
+ update_dom_time(p);
set_bit(DF_CONSTRUCTED, &p->d_flags);
/* Ensure that the domain has an up-to-date time base. */
if ( !is_idle_task(next->domain) )
- update_dom_time(next->domain->shared_info);
+ update_dom_time(next->domain);
if ( unlikely(prev == next) )
return;
TRACE_0D(TRC_SCHED_T_TIMER_FN);
if ( !is_idle_task(p->domain) ) {
- update_dom_time(p->domain->shared_info);
+ update_dom_time(p->domain);
send_guest_virq(p, VIRQ_TIMER);
}
struct domain *p = (struct domain *)data;
struct exec_domain *ed = p->exec_domain[0];
TRACE_0D(TRC_SCHED_DOM_TIMER_FN);
- update_dom_time(p->shared_info);
+ update_dom_time(p);
send_guest_virq(ed, VIRQ_TIMER);
}
TRACE_0D(TRC_SCHED_FALLBACK_TIMER_FN);
if ( !is_idle_task(p) )
- update_dom_time(p->shared_info);
+ update_dom_time(p);
fallback_timer[ed->processor].expires = NOW() + MILLISECS(500);
add_ac_timer(&fallback_timer[ed->processor]);
extern unsigned long cpu_khz;
+struct domain;
+
/*
* System Time
* 64 bit value containing the nanoseconds elapsed since boot time.
#define MILLISECS(_ms) (((s_time_t)(_ms)) * 1000000ULL )
#define MICROSECS(_us) (((s_time_t)(_us)) * 1000ULL )
-extern void update_dom_time(shared_info_t *si);
+extern void update_dom_time(struct domain *d);
extern void do_settime(unsigned long secs, unsigned long usecs,
u64 system_time_base);